package com.sugon.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 设备故障预防措施
 *
 * @author YuXD
 * @since 2023-04-05
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor
@Data
public class DevFaultPreventMeasure implements Serializable {

    /**
     * 主键
     */
    private String id;

    /**
     * 措施内容
     */
    private String content;

    /**
     * 开始时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 结束时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 进度
     */
    private String progress;

    /**
     * 维修工单ID：该措施的来源工单ID
     */
    private String repairTicketId;

    /**
     * 各个来源工单的ID
     * 待办事项ID、AM工单ID、PM工单ID
     */
    private String pmTicketId;

    /**
     * 措施类型，目前主要有三种，默认用表名称
     * 1、预防维护工单 DEV_MAINTENANCE_TICKET
     * 2、自主维护工单 DEV_MAINTENANCE_TICKET_AM
     * 3、待办事项 ERMS_TODO_LIST
     */
    private String measureType;

    /**
     * 责任人ID：就是这个工作指派给谁了
     */
    private String dutyUserId;

    /**
     * 创建时间
     */
    private String createUser;

    /**
     * 维修工单ID
     */
    private Date createTime;

    /**
     * 最近一次更新人员
     */
    private String updateUser;

    /**
     * 最近一次更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    public DevFaultPreventMeasure(String ticketId) {
        this.repairTicketId = ticketId;
    }

    /************************VO字段*********************************/

    /**
     * 设备维修工单ID：依据该措施最终制定的检修工单ID
     */
    private String pmTicketItemId;

    /**
     * 问题描述
     */
    private String problemDesc;

    /**
     * 制定人姓名
     */
    private String zdrName;

    /**
     * 实施人姓名
     */
    private String ssrName;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date implementDate;

    /**
     * 实施进度
     */
    private String status;

    /**
     * 是否异常
     */
    private Integer checkResult;

}
